In a Global Navigation Satellite System (GNSS) (including GPS) receiver that receives a GNSS positioning signal and carries out positioning thereby, a pseudo-random noise code generator (this corresponds to the code controller of the present invention, and shall be denoted as “code controller” hereinafter) is provided for receiving the positioning signal.
The code controller comprises a code phase designator, a code state configurator, a code Numerically Controlled Oscillator (NCO), and a code generator. Phase amounts less than the chip unit of the code phase computed by the code phase designator are inputted into the code NCO, whereupon the code NCO generates a code enable signal and outputs the code enable signal to the code generator. Phase amounts of the chip unit of the code phase computed by the code phase designator are inputted into the code state configurator, whereupon the code state configurator configures a desired code state based on the inputted phase amount and outputs the code state to the code generator.
The code generator outputs a code according to the code enable signal inputted from the code NCO, using the code state inputted from the code state configurator.
In such a configuration, the code state configurator stores all code states in advance, and configures the code state by detecting the code state to be applied based on the inputted phase amount.
However, in a conventional code controller, all code states are required to be stored in advance, and because the number of code states depends on the length of the code, an extremely large storage volume is required for long codes. For example, 109.74 megabytes are necessary in order to store all code states of 37 L2CM codes and L2CL codes, as L2CM code is configured of 10,230 chips and L2CL code is configured of 10,230×75 chips.
As a method to solve this problem, non-patent reference 1 discloses a method in which out of all the code states, a plurality of code states of a predetermined interval only are stored in advance, and an appropriate code state close to the desired code state is selected from among the stored code states based on the phase amount. In this method, the appropriate code state is a state previous (the side opposite the delay processing direction) to the desired code state. After this appropriate code state has been configured, the desired code state is found by changing the state of the shift register one state at a time in the direction the code states proceed in (in the delay processing direction). For example, when the case where a code state is stored per 1,024 states is applied to L2CM code and L2CL code, the storage volume is 109.7 kilobytes, but at the cost of the fact that the number of computations performed for processing that causes delay in single-state units is a maximum of 1,023.    Non-patent Reference 1: Okada, Uchida, Onoue, and Shirakawa. Architecture of Pseudo-Random Noise Code Generator for Next-Generation GNSS Receiver. Technical Report of IEICE CAS2002-29; Institute of Electronics, Information, and Communication Engineers.